package com.ruoyi.business.service;

import com.ruoyi.business.app.bo.AppWithdrawDetailQueryBo;
import com.ruoyi.business.app.vo.WalletAccountDetailVo;
import com.ruoyi.business.bo.HcxWithdrawDetailAddBo;
import com.ruoyi.business.bo.HcxWithdrawDetailEditBo;
import com.ruoyi.business.bo.HcxWithdrawDetailQueryBo;
import com.ruoyi.business.domain.HcxWithdrawDetail;
import com.ruoyi.business.vo.HcxWithdrawDetailVo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 账单明细Service接口
 *
 * @author wsdz
 * @date 2022-08-17
 */
public interface IHcxWithdrawDetailService extends IServicePlus<HcxWithdrawDetail> {
    /**
     * 查询单个
     *
     * @return
     */
    HcxWithdrawDetailVo queryById(Long id);

    /**
     * 查询列表
     */
    TableDataInfo<HcxWithdrawDetailVo> queryPageList(HcxWithdrawDetailQueryBo bo);

    TableDataInfo<WalletAccountDetailVo> queryAppPageList(AppWithdrawDetailQueryBo bo);

    /**
     * 查询列表
     */
    List<HcxWithdrawDetailVo> queryList(HcxWithdrawDetailQueryBo bo);

    /**
     * 根据新增业务对象插入账单明细
     *
     * @param bo 账单明细新增业务对象
     * @return
     */
    Boolean insertByAddBo(HcxWithdrawDetailAddBo bo);

    /**
     * 根据编辑业务对象修改账单明细
     *
     * @param bo 账单明细编辑业务对象
     * @return
     */
    Boolean updateByEditBo(HcxWithdrawDetailEditBo bo);

    /**
     * 校验并删除数据
     *
     * @param ids     主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 导入数据
     *
     * @param hcxWithdrawDetailList 排污口水质数据
     * @return String
     */
    String importHcxWithdrawDetail(List<HcxWithdrawDetailVo> hcxWithdrawDetailList);
}
